package sort;

import java.util.Arrays;
import java.util.Objects;

/**
 * 选择排序
 *
 * @auther yang
 * @date 2022/3/16 15:05
 */
public class SelectedSort {

    public static void main(String[] args) {
        int[] arr = {3, 5, 0, 8, 99, 1, 0};
        selectedSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void selectedSort(int[] arr) {
        if (Objects.isNull(arr) || arr.length < 2)
            return;
        sort(arr, 0);
    }

    // 选择排序的递归算法
    private static void sort(int[] a, int index) {
        if (index >= a.length) return;
        int minIndex = index;
        for (int i = index + 1; i < a.length; ++i) {
            if (a[i] < a[minIndex]) minIndex = i;
        }
        SortUtil.swap(a, index, minIndex);
        sort(a, index + 1);
    }
}
